#pragma once
#include "Video.h"

namespace Reign
{namespace Video
{namespace D3D10
{
	public ref class SamplerStateDesc : SamplerStateDescI
	{
		#pragma region Properties
		private: D3D10_SAMPLER_DESC* desc;
		public: property D3D10_SAMPLER_DESC* Desc {D3D10_SAMPLER_DESC* get();}
		#pragma endregion

		#pragma region Constructors
		public: SamplerStateDesc(SamplerStateTypes type);
		public: ~SamplerStateDesc();
		private: void null();
		#pragma endregion
	};

	public ref class SamplerState : Disposable, SamplerStateI
	{
		#pragma region Properties
		private: Video^ video;
		private: ID3D10SamplerState* samplerState;
		#pragma endregion
	
		#pragma region Constructors
		public: SamplerState(DisposableI^ parent, SamplerStateDescI^ desc);
		public: ~SamplerState();
		private: void null();
		#pragma endregion
		
		#pragma region Methods
		public: virtual void Enable(int index);
		#pragma endregion
	};
}
}
}